package com.gdteam.kernel.main;

import java.util.Collection;

import com.gdteam.kernel.Operations;
import com.gdteam.kernel.Service;


/**
 * Service manager comes on top
 * of the service stack, and offers service registration as well as registered services recovery
 * 
 * @author erwan
 *
 */
public interface ServiceManager extends Service {
    
    String FQN = "com.gdteam.kernel.servicemanager";
    
    /**
     * Service registration operation, used within
     * mainly for global operation
     * @param ops ops to register
     */
    void registerOperations(Operations ops);

    /**
     * 
     * @param name
     * @return
     */
    Service getService(String name);
    
    
    /**
     * 
     * @param name
     * @return operation
     */
    Operations getOperation(String name);
    
    
    /**
     * 
     * @return registered services
     */
    Collection<Service> getRegisteredServices();
    
    
    /**
     * @return registered operations
     */
    Collection<Operations> getRegisteredOperations();

}
